<?php

	/**
	*  载入后台系统菜单
	*/
	include LIB_PATH.'menu.php';
	
	/**
	*  载入分页函数
	*/
	include LIB_PATH.'paging.php';
	
	/**
	*  提交检测函数
	*/
	include LIB_PATH.'post_check.php';
	
	
	/**
	*  附件上传处理函数
	*/
	include LIB_PATH.'attach.php';
	
	/**
	*  中文多种字体处理
	*/
	include LIB_PATH.'chinese.php';
	
	/**
	*  图片处理函数
	*/
	include LIB_PATH.'image.php';
	
	/**
	*  访问另外地址函数
	*/
	include LIB_PATH.'curl.php';
	
	/**
	*  抓取搜索引擎数据
	*/
	include LIB_PATH.'search.php';
	
	/**
	*  手册样式处理代码
	*/
	include LIB_PATH.'bbcode.php';
	
	/**
	*  admin.php系统入口错误提示
	*/
	function error(){
		global $tpl;
		//404 出错
		$tpl->set_file('404');
		$tpl->p();
		exit;
	}
	
	
	/**
	*  系统基本设置
	*/
	function sys_config(){
		global $db;
		return $db->rows("SELECT * FROM _sys_set",1);
	}
	
	
	/**
	*  提示错误信息页面
	*/
	function msg($text, $url = '', $times = ''){
		global $tpl_set;
		//设置数据库
		$tpl = new template($tpl_set);					//设置模板目录
		
			if ($url != '') {
				//跳转链接
				$GoUrl = "href='$url'";
				if ($times == '') {
					@ header("Location: $url");
					$TimeGos = '';
				} else {
					$TimeGos = "<meta http-equiv='refresh' content=\"$times;url='$url'\">";
				}
			} else {
				//跳转链接
				//skip to another address
				$GoUrl = ($url == '' && $_SERVER['HTTP_REFERER'] != '') ? 'href="#" onclick="history.back();return false;"' : "href='$SFConfig[SiteURL]'";
			}

			//设置模版
			//set templates
			$tpl->set_var(array (
				"Texts" => nl2br($text),
				"Gourl" => $GoUrl,
				"TimeGos" => $TimeGos)
			);
		
		$tpl->set_file('sys_msg');
		$tpl->p();
		exit;
	}
	
	//发送邮件函数
	function mails($mailto='',$title='',$text=''){
	     global $mail_server,$mail_name,$mail_from,$mail_user,$mail_pass;
	     include_once"mail.php";
	  	 //check
	     if(trim($mailto)!=''){
	         $smtp = new smtp($mail_server,25,true,$mail_user,$mail_pass);//这里面true是表示使用身份验,否则不使用身份验?
	  		 //$smtp->debug = TRUE;//是否显示调试信息
	   		 $smtp->sendmail($mailto, $mail_from, $mail_name, $title, $text,"HTML");
	  	}
	}	
	
	/**
	*  数据库排序处理
	*  table	表示表名
	*  name		排序字段名
	*  modes	up 或down
	*  where	语句限制
	*  idname	当前ID字段名
	*  id		当前ID号码
	*  order	排序规则
	order(array(
		'table'=>'menus',
		'name'=>'orderby',
		'modes'=>'down',
		'where'=>'tid=6',
		'idname'=>'meid',
		'id'=>'15',
		'order'=>' ORDER BY orderby ASC,meid ASC',
	));
	*/


	function order($ary=array()){
		global $db;
		
		//取得同类别的所有板块
		$ary[where] = (trim($ary[where]))?" WHERE $ary[where] ":'';
		$ary[where1] = (trim($ary[where]))?" AND $ary[where] ":'';
		$querys = $db->query("SELECT * FROM $ary[table] $ary[where] $ary[order]");
		$i = 0;
		while($fs = $db->fetch_array($querys)){
			$i++;
			if($fs[$ary['idname']]==$ary[id]){
				$ids[$i] = array(
					'id'=>$fs[$ary['idname']],
					"order"=>$i,
				);
				$this_id = $i;//用于判断ID
			}else{
				$ids[$i] = array(
					'id'=>$fs[$ary['idname']],
					"order"=>$i,
				);
			}
		}
		
		//上下规则
		$upnum = ($ary[modes]=='up')?($this_id-1):($this_id+1);
		
		//处理排序
		if(is_array($ids)){
			foreach($ids AS $k=>$v){
				//当前版块的前一个版块
				if($k==$upnum){
					$upid = $this_id;
					$sql = "UPDATE $ary[table] SET $ary[name]='$upid' WHERE ".$ary['idname']."='$v[id]' $ary[where1]";
					$db->query($sql);
				}else{
					//当前版块
					if($k==$this_id){
						$upid = $upnum;
						$sql = "UPDATE $ary[table] SET $ary[name]='$upid' WHERE ".$ary['idname']."='$v[id]' $ary[where1]";
						$db->query($sql);
					}else{
						//其他版块
						$upid = $k;
						$sql = "UPDATE $ary[table] SET $ary[name]='$upid' WHERE ".$ary['idname']."='$v[id]' $ary[where1]";
						$db->query($sql);
					}
				}
			}
		}
	}


//////////////////以下实现防止英文单词被截断///////////////////////

function english_str($str,$start,$end){
   if($start!=0){
     	//如果被截的字母前面一个不是空格,表示这个字母并不是一个单词的开始
		if(substr($str,$start-1,1)!=" "){
			//那么我们就去除第一个不完整单词
			$i;
			for($i=1;$i<20;$i++){
			    //向下循环,直到空格为止,然后高空格后的第一个字母为分页的第一个单词的开始
				if(substr($str,$start+$i,1)==" ") {
					break;
				}
		    } 
	    $start+=$i;
	    }
  }
  	//如果结束处不是空格,表示一个单词还没有完
	if(substr($str,$end,1)!=""){
      $i;
      //往下循环,直到找到空格后退出,
      for($i=1;$i<20;$i++){
	     if(substr($str,$start+$end+$i,1)==" "){
	     break;
      }
    } 
    $end+=$i;
   }
   //获取分断单词
   return substr($str,$start,$end);
}


//////////////去除HTML标题//////////////////////
function perg_html($document){
 $document = trim($document);
 if (strlen($document) <= 0){
  return $document;
 }
 $search = array ("/onload=('|\").+('|\")/i",
 	 			  "/<style.*\/style>/i",  // 去掉 css
 	 			  "'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
                  "'\s*<[\/\!]*?[^<>]*?>\s*'Usi",          // 去掉 HTML 标记
                  "'([\r\n])[\s*]+'",                // 去掉空白字符
                  "'&(quot|#34);'i",                // 替换 HTML 实体
                  "'&(amp|#38);'i",
                  "'&(lt|#60);'i",
                  "'&(gt|#62);'i",
                  "'&(nbsp|#160);'i",
                  "/    /",
                  "/[ ]{2,99}/",
                 );

 $replace = array ("",
 	 			   "",
 	 			   "",
                   "  ",
                   "\\1",
                   "\"",
                   "&",
                   "<",
                   ">",
                   " ",
     			   " ",
                  );
 return @preg_replace ($search, $replace, $document);
}


/**
  * 中英文字符串剪切函数
  * @param string $str 待剪切的字串
  * @param int $len 剪切长度
  * @param string $endStr 结尾字符串
  * @return string
  */
function cutStr($str, $len, $endStr= null){
	$new_str = '';
    for($i=0;$i<$len;$i++){
        $temp_str=substr($str,0,1);
        if(ord($temp_str) > 127){
            $i++;
        	if($i<$len){
	            $new_str[]=substr($str,0,3);
	            $str=substr($str,3);
            }
            $endStr = 1;
        }else{
	        $new_str[]=substr($str,0,1);
	        $str=substr($str,1);
            $endStr = null;
       }
    }
    return join($new_str).(($endStr)?'...':'');
}



/**
 * 内容进行分页
 *
 * @param contstr	分页内容
 * @param URL 		链接地址
 * @param leng 		分页长度
 * @return text
 */

function contentPage($contstr='',$URL='',$leng='40'){
		$c_page=$_GET['cpage']; //当前页

		// 文字内容，可从数据库中查询出
		$listbyte=$leng; //每页显示字节数，正常情况下可设置为5000或其他
		//##寻找文章分页点----------
		$contlen=strlen($contstr);
		$j=0; //总页数
		$listat[0]=0;
		$lookAt=0;
		for($i=1;$i<$contlen/$listbyte+1;$i++){
		if($lookAt<$listbyte)
		$lookAt=$listbyte;
		if($lookAt>$contlen){
		  $j++;
		  $listat[$j]=$contlen;
		  break;
		}
		$endAt=strpos($contstr,"\n",$lookAt); // \n
		//如果余下的内容不足一页的1/5加到本页或找不到分页符则作一页处理
		if($endAt>$contlen-$listbyte/5 or intval($endAt)<1){
		  $j++;
		  $listat[$j]=$contlen; ///
		  break;
		}
		else{
		  $j++;
		  $listat[$j]=$endAt;
		  $lookAt=$endAt+$listbyte;
		}
		}
		
		
		//打印页码
		$pagenum=$j;//总页
		$curr_page = $c_page = ((int)$c_page<=1)?1:$c_page;
		$page=intval($c_page);
		if(empty($page) or $page<1 or $page>$pagenum) $page=1;
		$pages = '';
		
		if($pagenum>1) {
			$page_len = 5;
			$offset = 2;

			$from = $curr_page - $offset;
			$to = $curr_page + $page_len - $offset -1;
			if ($page_len > $pagenum) {
				$from = 1;
				$to = $pagenum;
			} else {
				if ($from < 1) {
					$to = $curr_page +1 - $from;
					$from = 1;
					if (($to - $from) < $page_len && ($to - $from) < $pagenum) {
						$to = $page_len;
					}
				} else
					if ($to > $pagenum) {
						$from = $curr_page - $pagenum + $to;
						$to = $pagenum;
						if (($to - $from) < $page_len && ($to - $from) < $pagenum) {
							$from = $pagenum - $page_len +1;
						}
					}
			}
			
			
			if (($curr_page -5) <= 1) {
				$pt = 1;
			} else {
				$pt = $curr_page -5;
			}
			$links = ($URL!='')?$URL.'&amp;cpage='.$pt:"?cpage=".$pt;
			$pages = "<a href='$links'>&lt;&lt;</a>.";
			
			
			for($i=$from;$i<=$to;$i++){
				$links = ($URL!='')?$URL.'&amp;cpage='.$i:"?cpage=".$i;
				if($curr_page == $i) {
					$pages .= $i . '.';
				} else {
					$pages .= "<a href='$links'>".($i)."</a>.";
				}
				
			}
			
			if (($curr_page +5) >= $pages) {
				$pd = $pagenum;
			} else {
				$pd = $curr_page +5;
			}
			$links = ($URL!='')?$URL.'&amp;cpage='.($pd):"?cpage=".($pd);
			$pages .= "<a href='$links'>&gt;&gt;</a>";
		}

		//输出当前页内容
		$stag=$page-1;
		$startb=$listat[$stag];
		if($startb>0) //去除首个换行
			$startb=$startb+1;
			$cont=substr($contstr,$startb,$listat[$page]-$startb);
		if($pages !=''){
			$pages = "".$pages;
		}
	return array('content'=>$cont,'pages'=>$pages);
}

?>